{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# linear regreesion（线性回归）\n",
    "注意：python版本为3.6，\n",
    "安装TensorFlow的方法：pip install tensorflow"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import seaborn as sns\n",
    "sns.set(context=\"notebook\", style=\"whitegrid\", palette=\"dark\")\n",
    "import matplotlib.pyplot as plt\n",
    "import tensorflow as tf\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "df = pd.read_csv('ex1data1.txt', names=['population', 'profit'])#读取数据并赋予列名"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>population</th>\n",
       "      <th>profit</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>6.1101</td>\n",
       "      <td>17.5920</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5.5277</td>\n",
       "      <td>9.1302</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8.5186</td>\n",
       "      <td>13.6620</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>7.0032</td>\n",
       "      <td>11.8540</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5.8598</td>\n",
       "      <td>6.8233</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   population   profit\n",
       "0      6.1101  17.5920\n",
       "1      5.5277   9.1302\n",
       "2      8.5186  13.6620\n",
       "3      7.0032  11.8540\n",
       "4      5.8598   6.8233"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()#看前五行"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 97 entries, 0 to 96\n",
      "Data columns (total 2 columns):\n",
      "population    97 non-null float64\n",
      "profit        97 non-null float64\n",
      "dtypes: float64(2)\n",
      "memory usage: 1.6 KB\n"
     ]
    }
   ],
   "source": [
    "df.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "***\n",
    "# 看下原始数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nPfPMM1qwYIEt/g4atr+2tlaHDx9Wz549Tf87oLgqAMAS2uSQHQDAfggkAIAlEEgAAEsgkAAAlkAg\nAQAsgUACLGDy5Mn+61RCPcZnzJgxZjcJiDoCCbCJ//u///P//7vvvhvDlgDmsNYVfIBF7dy5U4sX\nL1Z8fLxOnjypb33rW3ruuee0adMmrV69Wi6XS/3799ezzz6rjh07auDAgRoyZIj27t2rjh07atGi\nRerVq5fuuOMO/fa3v1WvXr20c+dOLVmyRGvWrPHvp6amRvPmzdPhw4dVUlKi9PR0LVmyRIsWLZIk\n3XvvvdqwYYOuu+46HTp0SOfPn9ecOXN06NAhuVwuTZs2TWPHjtXbb7+tDz74QF999ZX+9re/6R/+\n4R80b968GP30gPDQQwLCtGfPHv3sZz/T5s2bVVVVpZUrV2rFihVas2aNNm3apA4dOmjJkiWSpDNn\nzujWW2/Vpk2b9IMf/EALFiwIax9FRUVq166d1q1bp//5n/9RVVWVCgsLNWfOHEnShg0bAh6/ePFi\npaam6ve//71+85vfaPHixTp48KD/tX71q19p48aNev/993Xo0KEI/jSAyCOQgDDdcsstysjIkMvl\n0pgxY7Rs2TINGTJEqampkqScnBzt2LFDkpSYmKixY8dKqlu4rLnzQ/X3cd999+m1117Tc889p6NH\nj6qysrLJx+/YscNfb6xLly4aOnSof2gvKytLycnJ6tChg3r37q2vvvqq1ccORAOBBISpfqVpwzDk\n9XoD7jcMw19yPy4uzr/cgNfrbfRcSUHL82/ZskWPP/642rdvr3vuuUe33HKLQlX3anifYRiqra2V\npIA1a1wuV8jXAayAQALC5PF4dOrUKXm9Xr3zzjt6+umntXXrVp09e1aStH79et12222SpPPnz2vr\n1q2S6pak91WqTk1NVXFxsaS68Glo+/bt+v73v69x48apW7du+vjjj/0BE2yNnIEDB+rNN9+UJJWW\nlmrLli3+heAAuyGQgDBdddVVevLJJzVy5Eh1795dDzzwgKZPn67JkyfrzjvvVFlZmWbNmuV//ObN\nmzV69Gh98MEHmj17tiTpkUce0XPPPadx48YFXYfr3nvv1X/+539q7NixevjhhzVgwAAdP35ckjR0\n6FCNGTNGVVVV/sfPnDlTZ8+e1ejRo/XAAw/ooYcearS8BGAXVPsGwhBsRlwovllwAMJHDwkAYAn0\nkAAAlkAPCQBgCQQSAMASCCQAgCUQSAAASyCQAACWQCABACzh/wMhRpknft8FaQAAAABJRU5ErkJg\ngg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xc5225c0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.lmplot('population', 'profit', df, size=6, fit_reg=False)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def get_X(df):#读取特征\n",
    "#     \"\"\"\n",
    "#     use concat to add intersect feature to avoid side effect\n",
    "#     not efficient for big dataset though\n",
    "#     \"\"\"\n",
    "    ones = pd.DataFrame({'ones': np.ones(len(df))})#ones是m行1列的dataframe\n",
    "    data = pd.concat([ones, df], axis=1)  # 合并数据，根据列合并\n",
    "    return data.iloc[:, :-1].as_matrix()  # 这个操作返回 ndarray,不是矩阵\n",
    "\n",
    "\n",
    "def get_y(df):#读取标签\n",
    "#     '''assume the last column is the target'''\n",
    "    return np.array(df.iloc[:, -1])#df.iloc[:, -1]是指df的最后一列\n",
    "\n",
    "\n",
    "def normalize_feature(df):\n",
    "#     \"\"\"Applies function along input axis(default 0) of DataFrame.\"\"\"\n",
    "    return df.apply(lambda column: (column - column.mean()) / column.std())#特征缩放"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "多变量的假设 h 表示为：\\\\[{{h}_{\\theta }}\\left( x \\right)={{\\theta }_{0}}+{{\\theta }_{1}}{{x}_{1}}+{{\\theta }_{2}}{{x}_{2}}+...+{{\\theta }_{n}}{{x}_{n}}\\\\] \n",
    "这个公式中有n+1个参数和n个变量，为了使得公式能够简化一些，引入${{x}_{0}}=1$，则公式转化为：  \n",
    "此时模型中的参数是一个n+1维的向量，任何一个训练实例也都是n+1维的向量，特征矩阵X的维度是 m*(n+1)。 因此公式可以简化为：${{h}_{\\theta }}\\left( x \\right)={{\\theta }^{T}}X$，其中上标T代表矩阵转置。\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def linear_regression(X_data, y_data, alpha, epoch, optimizer=tf.train.GradientDescentOptimizer):# 这个函数是旧金山的一个大神Lucas Shen写的\n",
    "      # placeholder for graph input\n",
    "    X = tf.placeholder(tf.float32, shape=X_data.shape)\n",
    "    y = tf.placeholder(tf.float32, shape=y_data.shape)\n",
    "\n",
    "    # construct the graph\n",
    "    with tf.variable_scope('linear-regression'):\n",
    "        W = tf.get_variable(\"weights\",\n",
    "                            (X_data.shape[1], 1),\n",
    "                            initializer=tf.constant_initializer())  # n*1\n",
    "\n",
    "        y_pred = tf.matmul(X, W)  # m*n @ n*1 -> m*1\n",
    "\n",
    "        loss = 1 / (2 * len(X_data)) * tf.matmul((y_pred - y), (y_pred - y), transpose_a=True)  # (m*1).T @ m*1 = 1*1\n",
    "\n",
    "    opt = optimizer(learning_rate=alpha)\n",
    "    opt_operation = opt.minimize(loss)\n",
    "\n",
    "    # run the session\n",
    "    with tf.Session() as sess:\n",
    "        sess.run(tf.global_variables_initializer())\n",
    "        loss_data = []\n",
    "\n",
    "        for i in range(epoch):\n",
    "            _, loss_val, W_val = sess.run([opt_operation, loss, W], feed_dict={X: X_data, y: y_data})\n",
    "            loss_data.append(loss_val[0, 0])  # because every loss_val is 1*1 ndarray\n",
    "\n",
    "            if len(loss_data) > 1 and np.abs(loss_data[-1] - loss_data[-2]) < 10 ** -9:  # early break when it's converged\n",
    "                # print('Converged at epoch {}'.format(i))\n",
    "                break\n",
    "\n",
    "    # clear the graph\n",
    "    tf.reset_default_graph()\n",
    "    return {'loss': loss_data, 'parameters': W_val}  # just want to return in row vector format"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>population</th>\n",
       "      <th>profit</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>6.1101</td>\n",
       "      <td>17.5920</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5.5277</td>\n",
       "      <td>9.1302</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8.5186</td>\n",
       "      <td>13.6620</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>7.0032</td>\n",
       "      <td>11.8540</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5.8598</td>\n",
       "      <td>6.8233</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   population   profit\n",
       "0      6.1101  17.5920\n",
       "1      5.5277   9.1302\n",
       "2      8.5186  13.6620\n",
       "3      7.0032  11.8540\n",
       "4      5.8598   6.8233"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = pd.read_csv('ex1data1.txt', names=['population', 'profit'])#读取数据，并赋予列名\n",
    "\n",
    "data.head()#看下数据前5行"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 计算代价函数\n",
    "$$J\\left( \\theta  \\right)=\\frac{1}{2m}\\sum\\limits_{i=1}^{m}{{{\\left( {{h}_{\\theta }}\\left( {{x}^{(i)}} \\right)-{{y}^{(i)}} \\right)}^{2}}}$$\n",
    "其中：\\\\[{{h}_{\\theta }}\\left( x \\right)={{\\theta }^{T}}X={{\\theta }_{0}}{{x}_{0}}+{{\\theta }_{1}}{{x}_{1}}+{{\\theta }_{2}}{{x}_{2}}+...+{{\\theta }_{n}}{{x}_{n}}\\\\] "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(97, 2) <class 'numpy.ndarray'>\n",
      "(97,) <class 'numpy.ndarray'>\n"
     ]
    }
   ],
   "source": [
    "X = get_X(data)\n",
    "print(X.shape, type(X))\n",
    "\n",
    "y = get_y(data)\n",
    "print(y.shape, type(y))\n",
    "#看下数据维度"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "theta = np.zeros(X.shape[1])#X.shape[1]=2,代表特征数n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def lr_cost(theta, X, y):\n",
    "#     \"\"\"\n",
    "#     X: R(m*n), m 样本数, n 特征数\n",
    "#     y: R(m)\n",
    "#     theta : R(n), 线性回归的参数\n",
    "#     \"\"\"\n",
    "    m = X.shape[0]#m为样本数\n",
    "\n",
    "    inner = X @ theta - y  # R(m*1)，X @ theta等价于X.dot(theta)\n",
    "\n",
    "    # 1*m @ m*1 = 1*1 in matrix multiplication\n",
    "    # but you know numpy didn't do transpose in 1d array, so here is just a\n",
    "    # vector inner product to itselves\n",
    "    square_sum = inner.T @ inner\n",
    "    cost = square_sum / (2 * m)\n",
    "\n",
    "    return cost"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "32.072733877455676"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr_cost(theta, X, y)#返回theta的值"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# batch gradient decent（批量梯度下降）\n",
    "$${{\\theta }_{j}}:={{\\theta }_{j}}-\\alpha \\frac{\\partial }{\\partial {{\\theta }_{j}}}J\\left( \\theta  \\right)$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def gradient(theta, X, y):\n",
    "    m = X.shape[0]\n",
    "\n",
    "    inner = X.T @ (X @ theta - y)  # (m,n).T @ (m, 1) -> (n, 1)，X @ theta等价于X.dot(theta)\n",
    "\n",
    "    return inner / m"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def batch_gradient_decent(theta, X, y, epoch, alpha=0.01):\n",
    "#   拟合线性回归，返回参数和代价\n",
    "#     epoch: 批处理的轮数\n",
    "#     \"\"\"\n",
    "    cost_data = [lr_cost(theta, X, y)]\n",
    "    _theta = theta.copy()  # 拷贝一份，不和原来的theta混淆\n",
    "\n",
    "    for _ in range(epoch):\n",
    "        _theta = _theta - alpha * gradient(_theta, X, y)\n",
    "        cost_data.append(lr_cost(_theta, X, y))\n",
    "\n",
    "    return _theta, cost_data\n",
    "#批量梯度下降函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "epoch = 500\n",
    "final_theta, cost_data = batch_gradient_decent(theta, X, y, epoch)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-2.28286727,  1.03099898])"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "final_theta\n",
    "#最终的theta"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[32.072733877455676,\n",
       " 6.7371904648700109,\n",
       " 5.9315935686049563,\n",
       " 5.9011547070813881,\n",
       " 5.8952285864442207,\n",
       " 5.8900949431173304,\n",
       " 5.8850041584436461,\n",
       " 5.8799324804914175,\n",
       " 5.8748790947625729,\n",
       " 5.8698439118063854,\n",
       " 5.8648268653129305,\n",
       " 5.8598278899321805,\n",
       " 5.8548469205722897,\n",
       " 5.849883892376587,\n",
       " 5.8449387407220339,\n",
       " 5.8400114012183613,\n",
       " 5.8351018097072282,\n",
       " 5.8302099022613882,\n",
       " 5.825335615183862,\n",
       " 5.8204788850070992,\n",
       " 5.8156396484921542,\n",
       " 5.8108178426278689,\n",
       " 5.8060134046300451,\n",
       " 5.8012262719406298,\n",
       " 5.7964563822268991,\n",
       " 5.7917036733806526,\n",
       " 5.7869680835173956,\n",
       " 5.7822495509755392,\n",
       " 5.7775480143155962,\n",
       " 5.7728634123193823,\n",
       " 5.7681956839892123,\n",
       " 5.7635447685471197,\n",
       " 5.7589106054340471,\n",
       " 5.7542931343090782,\n",
       " 5.7496922950486287,\n",
       " 5.7451080277456841,\n",
       " 5.7405402727090138,\n",
       " 5.7359889704623814,\n",
       " 5.7314540617437917,\n",
       " 5.7269354875047016,\n",
       " 5.7224331889092568,\n",
       " 5.7179471073335293,\n",
       " 5.7134771843647494,\n",
       " 5.7090233618005488,\n",
       " 5.7045855816481987,\n",
       " 5.7001637861238557,\n",
       " 5.6957579176518154,\n",
       " 5.6913679188637518,\n",
       " 5.6869937325979798,\n",
       " 5.6826353018987072,\n",
       " 5.6782925700152918,\n",
       " 5.6739654804015052,\n",
       " 5.6696539767147964,\n",
       " 5.6653580028155526,\n",
       " 5.6610775027663793,\n",
       " 5.6568124208313595,\n",
       " 5.6525627014753335,\n",
       " 5.6483282893631808,\n",
       " 5.6441091293590917,\n",
       " 5.6399051665258559,\n",
       " 5.6357163461241351,\n",
       " 5.6315426136117717,\n",
       " 5.6273839146430547,\n",
       " 5.6232401950680257,\n",
       " 5.6191114009317777,\n",
       " 5.6149974784737404,\n",
       " 5.6108983741269842,\n",
       " 5.6068140345175319,\n",
       " 5.602744406463648,\n",
       " 5.5986894369751594,\n",
       " 5.5946490732527598,\n",
       " 5.5906232626873233,\n",
       " 5.5866119528592151,\n",
       " 5.5826150915376234,\n",
       " 5.5786326266798527,\n",
       " 5.5746645064306781,\n",
       " 5.5707106791216434,\n",
       " 5.5667710932704031,\n",
       " 5.5628456975800509,\n",
       " 5.558934440938442,\n",
       " 5.5550372724175441,\n",
       " 5.5511541412727547,\n",
       " 5.5472849969422562,\n",
       " 5.5434297890463515,\n",
       " 5.5395884673868077,\n",
       " 5.5357609819462041,\n",
       " 5.5319472828872751,\n",
       " 5.5281473205522715,\n",
       " 5.5243610454623058,\n",
       " 5.5205884083167129,\n",
       " 5.5168293599924025,\n",
       " 5.5130838515432252,\n",
       " 5.5093518341993333,\n",
       " 5.5056332593665385,\n",
       " 5.5019280786256992,\n",
       " 5.4982362437320651,\n",
       " 5.4945577066146658,\n",
       " 5.490892419375677,\n",
       " 5.4872403342898046,\n",
       " 5.483601403803652,\n",
       " 5.479975580535112,\n",
       " 5.476362817272741,\n",
       " 5.472763066975153,\n",
       " 5.4691762827703982,\n",
       " 5.465602417955358,\n",
       " 5.462041425995138,\n",
       " 5.4584932605224585,\n",
       " 5.4549578753370467,\n",
       " 5.451435224405051,\n",
       " 5.4479252618584244,\n",
       " 5.4444279419943333,\n",
       " 5.4409432192745655,\n",
       " 5.4374710483249329,\n",
       " 5.4340113839346866,\n",
       " 5.4305641810559191,\n",
       " 5.4271293948029848,\n",
       " 5.4237069804519171,\n",
       " 5.4202968934398381,\n",
       " 5.4168990893643816,\n",
       " 5.4135135239831227,\n",
       " 5.4101401532129882,\n",
       " 5.4067789331296936,\n",
       " 5.4034298199671653,\n",
       " 5.4000927701169754,\n",
       " 5.3967677401277676,\n",
       " 5.3934546867046969,\n",
       " 5.3901535667088618,\n",
       " 5.3868643371567471,\n",
       " 5.3835869552196609,\n",
       " 5.3803213782231776,\n",
       " 5.3770675636465821,\n",
       " 5.3738254691223171,\n",
       " 5.37059505243543,\n",
       " 5.3673762715230238,\n",
       " 5.364169084473712,\n",
       " 5.3609734495270676,\n",
       " 5.3577893250730844,\n",
       " 5.3546166696516337,\n",
       " 5.3514554419519165,\n",
       " 5.3483056008119441,\n",
       " 5.345167105217981,\n",
       " 5.3420399143040287,\n",
       " 5.3389239873512837,\n",
       " 5.3358192837876031,\n",
       " 5.3327257631869891,\n",
       " 5.329643385269053,\n",
       " 5.3265721098984988,\n",
       " 5.3235118970845869,\n",
       " 5.3204627069806296,\n",
       " 5.3174244998834608,\n",
       " 5.3143972362329235,\n",
       " 5.3113808766113557,\n",
       " 5.3083753817430726,\n",
       " 5.3053807124938608,\n",
       " 5.3023968298704647,\n",
       " 5.2994236950200815,\n",
       " 5.2964612692298516,\n",
       " 5.2935095139263604,\n",
       " 5.2905683906751291,\n",
       " 5.2876378611801176,\n",
       " 5.2847178872832314,\n",
       " 5.2818084309638111,\n",
       " 5.2789094543381534,\n",
       " 5.2760209196590013,\n",
       " 5.2731427893150702,\n",
       " 5.2702750258305437,\n",
       " 5.267417591864592,\n",
       " 5.2645704502108854,\n",
       " 5.2617335637971108,\n",
       " 5.2589068956844836,\n",
       " 5.2560904090672738,\n",
       " 5.2532840672723218,\n",
       " 5.250487833758565,\n",
       " 5.2477016721165555,\n",
       " 5.2449255460679938,\n",
       " 5.2421594194652528,\n",
       " 5.2394032562909016,\n",
       " 5.2366570206572511,\n",
       " 5.2339206768058695,\n",
       " 5.2311941891071285,\n",
       " 5.2284775220597366,\n",
       " 5.2257706402902713,\n",
       " 5.2230735085527291,\n",
       " 5.2203860917280558,\n",
       " 5.2177083548236967,\n",
       " 5.2150402629731367,\n",
       " 5.2123817814354494,\n",
       " 5.2097328755948435,\n",
       " 5.2070935109602079,\n",
       " 5.2044636531646722,\n",
       " 5.2018432679651498,\n",
       " 5.1992323212418956,\n",
       " 5.1966307789980615,\n",
       " 5.1940386073592597,\n",
       " 5.1914557725731072,\n",
       " 5.1888822410088018,\n",
       " 5.1863179791566756,\n",
       " 5.1837629536277587,\n",
       " 5.1812171311533488,\n",
       " 5.1786804785845755,\n",
       " 5.1761529628919671,\n",
       " 5.1736345511650219,\n",
       " 5.1711252106117822,\n",
       " 5.168624908558404,\n",
       " 5.1661336124487311,\n",
       " 5.1636512898438749,\n",
       " 5.1611779084217888,\n",
       " 5.1587134359768489,\n",
       " 5.1562578404194337,\n",
       " 5.1538110897755045,\n",
       " 5.1513731521861974,\n",
       " 5.1489439959073957,\n",
       " 5.1465235893093233,\n",
       " 5.1441119008761387,\n",
       " 5.1417088992055149,\n",
       " 5.1393145530082336,\n",
       " 5.1369288311077792,\n",
       " 5.1345517024399312,\n",
       " 5.1321831360523653,\n",
       " 5.1298231011042379,\n",
       " 5.1274715668657986,\n",
       " 5.1251285027179803,\n",
       " 5.1227938781520068,\n",
       " 5.1204676627689922,\n",
       " 5.1181498262795433,\n",
       " 5.1158403385033679,\n",
       " 5.1135391693688836,\n",
       " 5.1112462889128247,\n",
       " 5.1089616672798481,\n",
       " 5.1066852747221496,\n",
       " 5.1044170815990766,\n",
       " 5.1021570583767355,\n",
       " 5.0999051756276197,\n",
       " 5.0976614040302106,\n",
       " 5.0954257143686092,\n",
       " 5.0931980775321497,\n",
       " 5.09097846451502,\n",
       " 5.0887668464158873,\n",
       " 5.0865631944375176,\n",
       " 5.0843674798864011,\n",
       " 5.0821796741723864,\n",
       " 5.079999748808298,\n",
       " 5.0778276754095675,\n",
       " 5.0756634256938717,\n",
       " 5.0735069714807555,\n",
       " 5.0713582846912679,\n",
       " 5.0692173373475962,\n",
       " 5.0670841015727053,\n",
       " 5.0649585495899681,\n",
       " 5.0628406537228097,\n",
       " 5.0607303863943418,\n",
       " 5.0586277201270109,\n",
       " 5.0565326275422313,\n",
       " 5.0544450813600363,\n",
       " 5.0523650543987193,\n",
       " 5.0502925195744792,\n",
       " 5.0482274499010735,\n",
       " 5.0461698184894566,\n",
       " 5.0441195985474412,\n",
       " 5.0420767633793417,\n",
       " 5.0400412863856268,\n",
       " 5.038013141062577,\n",
       " 5.0359923010019392,\n",
       " 5.0339787398905793,\n",
       " 5.0319724315101411,\n",
       " 5.0299733497367072,\n",
       " 5.0279814685404549,\n",
       " 5.025996761985323,\n",
       " 5.0240192042286669,\n",
       " 5.0220487695209268,\n",
       " 5.0200854322052928,\n",
       " 5.018129166717368,\n",
       " 5.0161799475848339,\n",
       " 5.0142377494271289,\n",
       " 5.0123025469551052,\n",
       " 5.0103743149707087,\n",
       " 5.0084530283666435,\n",
       " 5.0065386621260481,\n",
       " 5.0046311913221766,\n",
       " 5.00273059111806,\n",
       " 5.0008368367661991,\n",
       " 4.9989499036082261,\n",
       " 4.9970697670745947,\n",
       " 4.9951964026842566,\n",
       " 4.9933297860443435,\n",
       " 4.9914698928498451,\n",
       " 4.9896166988833013,\n",
       " 4.9877701800144782,\n",
       " 4.9859303122000602,\n",
       " 4.9840970714833324,\n",
       " 4.9822704339938717,\n",
       " 4.9804503759472336,\n",
       " 4.978636873644648,\n",
       " 4.9768299034726979,\n",
       " 4.9750294419030316,\n",
       " 4.9732354654920341,\n",
       " 4.9714479508805409,\n",
       " 4.9696668747935222,\n",
       " 4.967892214039785,\n",
       " 4.9661239455116677,\n",
       " 4.9643620461847444,\n",
       " 4.9626064931175193,\n",
       " 4.9608572634511301,\n",
       " 4.9591143344090529,\n",
       " 4.9573776832968033,\n",
       " 4.9556472875016393,\n",
       " 4.9539231244922703,\n",
       " 4.9522051718185605,\n",
       " 4.9504934071112396,\n",
       " 4.9487878080816099,\n",
       " 4.9470883525212574,\n",
       " 4.9453950183017596,\n",
       " 4.9437077833743981,\n",
       " 4.9420266257698762,\n",
       " 4.9403515235980295,\n",
       " 4.9386824550475357,\n",
       " 4.9370193983856412,\n",
       " 4.9353623319578688,\n",
       " 4.9337112341877427,\n",
       " 4.9320660835764993,\n",
       " 4.9304268587028188,\n",
       " 4.9287935382225347,\n",
       " 4.9271661008683632,\n",
       " 4.925544525449622,\n",
       " 4.9239287908519627,\n",
       " 4.9223188760370791,\n",
       " 4.9207147600424523,\n",
       " 4.9191164219810677,\n",
       " 4.9175238410411399,\n",
       " 4.9159369964858524,\n",
       " 4.9143558676530761,\n",
       " 4.9127804339551107,\n",
       " 4.9112106748784097,\n",
       " 4.9096465699833125,\n",
       " 4.9080880989037841,\n",
       " 4.9065352413471484,\n",
       " 4.904987977093815,\n",
       " 4.903446285997032,\n",
       " 4.9019101479826102,\n",
       " 4.9003795430486665,\n",
       " 4.8988544512653656,\n",
       " 4.897334852774657,\n",
       " 4.8958207277900163,\n",
       " 4.894312056596192,\n",
       " 4.8928088195489439,\n",
       " 4.8913109970747897,\n",
       " 4.8898185696707479,\n",
       " 4.8883315179040903,\n",
       " 4.8868498224120795,\n",
       " 4.8853734639017246,\n",
       " 4.8839024231495243,\n",
       " 4.8824366810012201,\n",
       " 4.8809762183715479,\n",
       " 4.8795210162439853,\n",
       " 4.8780710556705085,\n",
       " 4.8766263177713407,\n",
       " 4.8751867837347129,\n",
       " 4.8737524348166099,\n",
       " 4.8723232523405349,\n",
       " 4.8708992176972616,\n",
       " 4.869480312344594,\n",
       " 4.8680665178071223,\n",
       " 4.8666578156759863,\n",
       " 4.8652541876086328,\n",
       " 4.863855615328573,\n",
       " 4.8624620806251588,\n",
       " 4.8610735653533252,\n",
       " 4.8596900514333718,\n",
       " 4.858311520850715,\n",
       " 4.8569379556556642,\n",
       " 4.8555693379631784,\n",
       " 4.8542056499526396,\n",
       " 4.8528468738676169,\n",
       " 4.8514929920156389,\n",
       " 4.8501439867679608,\n",
       " 4.8487998405593355,\n",
       " 4.8474605358877847,\n",
       " 4.8461260553143699,\n",
       " 4.8447963814629684,\n",
       " 4.8434714970200456,\n",
       " 4.8421513847344286,\n",
       " 4.8408360274170814,\n",
       " 4.8395254079408829,\n",
       " 4.8382195092404041,\n",
       " 4.8369183143116823,\n",
       " 4.8356218062120035,\n",
       " 4.8343299680596772,\n",
       " 4.8330427830338261,\n",
       " 4.8317602343741575,\n",
       " 4.8304823053807446,\n",
       " 4.8292089794138171,\n",
       " 4.8279402398935405,\n",
       " 4.8266760702997979,\n",
       " 4.8254164541719788,\n",
       " 4.8241613751087611,\n",
       " 4.8229108167678989,\n",
       " 4.8216647628660114,\n",
       " 4.8204231971783704,\n",
       " 4.819186103538688,\n",
       " 4.8179534658389018,\n",
       " 4.8167252680289776,\n",
       " 4.8155014941166856,\n",
       " 4.8142821281674033,\n",
       " 4.8130671543039014,\n",
       " 4.8118565567061413,\n",
       " 4.8106503196110664,\n",
       " 4.809448427312395,\n",
       " 4.8082508641604242,\n",
       " 4.8070576145618169,\n",
       " 4.8058686629794032,\n",
       " 4.8046839939319756,\n",
       " 4.8035035919940903,\n",
       " 4.8023274417958657,\n",
       " 4.8011555280227798,\n",
       " 4.7999878354154761,\n",
       " 4.7988243487695552,\n",
       " 4.7976650529353906,\n",
       " 4.7965099328179184,\n",
       " 4.795358973376449,\n",
       " 4.7942121596244665,\n",
       " 4.7930694766294364,\n",
       " 4.7919309095126117,\n",
       " 4.790796443448837,\n",
       " 4.7896660636663553,\n",
       " 4.7885397554466147,\n",
       " 4.7874175041240843,\n",
       " 4.7862992950860539,\n",
       " 4.7851851137724477,\n",
       " 4.7840749456756351,\n",
       " 4.7829687763402395,\n",
       " 4.7818665913629541,\n",
       " 4.7807683763923503,\n",
       " 4.7796741171286952,\n",
       " 4.7785837993237585,\n",
       " 4.7774974087806346,\n",
       " 4.7764149313535507,\n",
       " 4.7753363529476918,\n",
       " 4.7742616595190066,\n",
       " 4.773190837074031,\n",
       " 4.7721238716697076,\n",
       " 4.7710607494131958,\n",
       " 4.770001456461701,\n",
       " 4.7689459790222868,\n",
       " 4.7678943033516976,\n",
       " 4.7668464157561825,\n",
       " 4.7658023025913154,\n",
       " 4.7647619502618133,\n",
       " 4.7637253452213626,\n",
       " 4.7626924739724474,\n",
       " 4.7616633230661636,\n",
       " 4.7606378791020525,\n",
       " 4.7596161287279255,\n",
       " 4.7585980586396799,\n",
       " 4.7575836555811408,\n",
       " 4.7565729063438775,\n",
       " 4.755565797767038,\n",
       " 4.7545623167371724,\n",
       " 4.7535624501880669,\n",
       " 4.7525661851005694,\n",
       " 4.7515735085024247,\n",
       " 4.7505844074680983,\n",
       " 4.7495988691186195,\n",
       " 4.7486168806214,\n",
       " 4.7476384291900784,\n",
       " 4.7466635020843446,\n",
       " 4.745692086609786,\n",
       " 4.7447241701177063,\n",
       " 4.7437597400049727,\n",
       " 4.7427987837138508,\n",
       " 4.7418412887318322,\n",
       " 4.7408872425914828,\n",
       " 4.7399366328702737,\n",
       " 4.7389894471904226,\n",
       " 4.7380456732187284,\n",
       " 4.7371052986664157,\n",
       " 4.7361683112889716,\n",
       " 4.7352346988859892,\n",
       " 4.7343044493010051,\n",
       " 4.7333775504213413,\n",
       " 4.7324539901779517,\n",
       " 4.7315337565452618,\n",
       " 4.7306168375410103,\n",
       " 4.7297032212260985,\n",
       " 4.7287928957044265,\n",
       " 4.7278858491227513,\n",
       " 4.7269820696705187,\n",
       " 4.7260815455797172,\n",
       " 4.7251842651247218,\n",
       " 4.7242902166221432,\n",
       " 4.7233993884306775,\n",
       " 4.7225117689509464,\n",
       " 4.7216273466253593,\n",
       " 4.7207461099379495,\n",
       " 4.7198680474142325,\n",
       " 4.7189931476210534,\n",
       " 4.7181213991664395,\n",
       " 4.7172527906994519,\n",
       " 4.7163873109100365,\n",
       " 4.7155249485288744,\n",
       " 4.7146656923272445,\n",
       " 4.7138095311168664]"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cost_data\n",
    "# 看下代价数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4.7138095311168664"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 计算最终的代价\n",
    "lr_cost(final_theta, X, y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# visualize cost data（代价数据可视化）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xcb8a630>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ax = sns.tsplot(cost_data, time=np.arange(epoch+1))\n",
    "ax.set_xlabel('epoch')\n",
    "ax.set_ylabel('cost')\n",
    "plt.show()\n",
    "#可以看到从第二轮代价数据变换很大，接下来平稳了"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nS0uDUqmEr68v3nrrLTRs2FDveFM/666u+rmePn0aL7zwApo1awYAGDlyJAYOHKg71p3e15deegnX\nrl0DABQUFKBz585YvHix3vFyfF/v3LmDWbNmoaCgACqVChMnTkTLli3d8vdV7FwjIiIc//squLDb\nt28LCQkJom0qlUp49NFHhZs3bwqVlZXCU089JVy9elXiHjpGamqqsGHDBr3HXnnlFeHEiRNO6pF9\nrF69Whg8eLAwbNgwQRAE4YUXXhAOHDggCIIgJCcnC5mZmXrHf/fdd8KMGTMEQRCE3377TfjXv/4l\nbYdtUPNcn332WeH06dOCIAjCZ599JqSnp+sdb+pn3dXVPNeNGzcKH3zwgdHj3el91bp586bwxBNP\nCEVFRXqPy/V93bx5szB//nxBEAThxo0bQp8+fdz291XsXKX4fXXpaeezZ8+ioqICiYmJGDt2LI4e\nPapru3DhAqKjoxEcHAxfX1/Exsbi8OHDTuytfZw4cQJ//PEHnnnmGb3HT506hdWrV2PkyJFYtWqV\nk3pnm+joaCxdulT39alTp9CjRw8AQO/evbFv3z6947OysvDQQw8BALp06YKTJ09K11kb1TzXRYsW\noV27dgCAqqoq+Pn56R1v6mfd1dU815MnT+Knn37Cs88+i1mzZqG0tFTveHd6X7WWLl2K0aNHo1Gj\nRnqPy/V9jY+Px9SpUwEAgiBAqVS67e+r2LlK8fvq0uHr7++P8ePH44MPPsDcuXMxbdo0qNVqAEBp\naSnq1aunO7Zu3boGv+RytGrVKkyaNMng8UGDBiE1NRUfffQRsrKysHv3bif0zjYDBgyAt/e9Kx2C\nIEChUAC4+/7dunVL7/jS0lLdtA4AKJVK3fvv6mqeq/aP8n//+1+sX78e48aN0zve1M+6q6t5rp06\ndcL06dPxySefICoqCsuWLdM73p3eVwD466+/sH//fjz11FMGx8v1fa1bty4CAwNRWlqKKVOmICkp\nyW1/X8XOVYrfV5cO35iYGDzxxBNQKBSIiYlBSEgIrl69CgAIDAxEWVmZ7tiysjK9MJajkpISZGdn\no1evXnqPC4KAf/zjH6hfvz58fX3Rp08fnD592km9tJ/q14vKysp017e1ar7HGo3G4A+fnHzzzTdI\nSUnB6tWrddfutUz9rMtN//790bFjR93/1/xZdbf39dtvv8XgwYOhVCoN2uT8vhYWFmLs2LFISEjA\n448/7ta/rzXPFXD876tLh+/mzZuxYMECAEBRURFKS0tx3333AQBatGiBS5cu4ebNm1CpVDhy5Age\neOABZ3bXZocPH8aDDz5o8HhpaSkGDx6MsrIyCIKAgwcP6v64yVn79u1x8OBBAMCePXvQrVs3vfau\nXbtiz549AICjR4+idevWkvfRXrZt24b169dj3bp1iIqKMmg39bMuN+PHj8fx48cBAPv370eHDh30\n2t3pfQXunmPv3r1F2+T6vl67dg2JiYl49dVXMXToUADu+/sqdq5S/L669MeSoUOH4rXXXsPIkSOh\nUCiQnp6OnTt3ory8HM888wxmzpyJ8ePHQxAEPP300wgLC3N2l22SnZ2NyMhI3ddfffWV7lxfeukl\njB07Fr6+vnjwwQfRp08fJ/bUPmbMmIHk5GQsWrQIzZs3x4ABAwAA06dPR1JSEvr374+9e/dixIgR\nEAQB6enpTu6xdaqqqvDGG28gPDwckydPBgB0794dU6ZM0Z2r2M+6XEYNNaWmpiItLQ0+Pj5o2LAh\n0tLSALjf+6qVnZ1t8Ada7u/rypUrUVJSguXLl2P58uUAgNdffx3z5893u9/XmudaVVWF8+fPIyIi\nwqG/r9xYgYiISGIuPe1MRETkjhi+REREEmP4EhERSYzhS0REJDGGLxERkcQYvkRERBJj+BIREUmM\n4UtERCSx/wPoZQvAj9MoxgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xce1eef0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "b = final_theta[0] # intercept，Y轴上的截距\n",
    "m = final_theta[1] # slope，斜率\n",
    "\n",
    "plt.scatter(data.population, data.profit, label=\"Training data\")\n",
    "plt.plot(data.population, data.population*m + b, label=\"Prediction\")\n",
    "plt.legend(loc=2)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 3- 选修章节"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>square</th>\n",
       "      <th>bedrooms</th>\n",
       "      <th>price</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2104</td>\n",
       "      <td>3</td>\n",
       "      <td>399900</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1600</td>\n",
       "      <td>3</td>\n",
       "      <td>329900</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2400</td>\n",
       "      <td>3</td>\n",
       "      <td>369000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1416</td>\n",
       "      <td>2</td>\n",
       "      <td>232000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3000</td>\n",
       "      <td>4</td>\n",
       "      <td>539900</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   square  bedrooms   price\n",
       "0    2104         3  399900\n",
       "1    1600         3  329900\n",
       "2    2400         3  369000\n",
       "3    1416         2  232000\n",
       "4    3000         4  539900"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "raw_data = pd.read_csv('ex1data2.txt', names=['square', 'bedrooms', 'price'])\n",
    "raw_data.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "# 标准化数据\n",
    "最简单的方法是令：\n",
    "\n",
    " \n",
    "\n",
    "其中  是平均值，sn 是标准差。\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def normalize_feature(df):\n",
    "#     \"\"\"Applies function along input axis(default 0) of DataFrame.\"\"\"\n",
    "    return df.apply(lambda column: (column - column.mean()) / column.std())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>square</th>\n",
       "      <th>bedrooms</th>\n",
       "      <th>price</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.130010</td>\n",
       "      <td>-0.223675</td>\n",
       "      <td>0.475747</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-0.504190</td>\n",
       "      <td>-0.223675</td>\n",
       "      <td>-0.084074</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.502476</td>\n",
       "      <td>-0.223675</td>\n",
       "      <td>0.228626</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-0.735723</td>\n",
       "      <td>-1.537767</td>\n",
       "      <td>-0.867025</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.257476</td>\n",
       "      <td>1.090417</td>\n",
       "      <td>1.595389</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     square  bedrooms     price\n",
       "0  0.130010 -0.223675  0.475747\n",
       "1 -0.504190 -0.223675 -0.084074\n",
       "2  0.502476 -0.223675  0.228626\n",
       "3 -0.735723 -1.537767 -0.867025\n",
       "4  1.257476  1.090417  1.595389"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = normalize_feature(raw_data)\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2. multi-var batch gradient decent（多变量批量梯度下降）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(47, 3) <class 'numpy.ndarray'>\n",
      "(47,) <class 'numpy.ndarray'>\n"
     ]
    }
   ],
   "source": [
    "X = get_X(data)\n",
    "print(X.shape, type(X))\n",
    "\n",
    "y = get_y(data)\n",
    "print(y.shape, type(y))#看下数据的维度和类型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "alpha = 0.01#学习率\n",
    "theta = np.zeros(X.shape[1])#X.shape[1]：特征数n\n",
    "epoch = 500#轮数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "final_theta, cost_data = batch_gradient_decent(theta, X, y, epoch, alpha=alpha)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nauz23882GYaBxWIBICQkhMOHD+N2uwkNDfVuExISgtvtrvFa66KQkBCcTidut5t7772X++67T2Ps\nI3a7nYcffpinnnqK/v37a5yr2fvvv0+jRo28f5iB/r2obkFBQdx+++289tprPPnkkzz44IPVNsb1\nMhQ4nU5yc3O9yx6Pp9wXmpw5q/X3/3Ryc3MJCws7btxzc3PL/QcpFfv1118ZOXIkN9xwA/3799cY\n+9CMGTNYvnw5jz/+OIWFhd71Guczt2jRIlavXs2IESPYsGEDDz/8MDk5Od52jfGZa9OmDddffz0W\ni4U2bdoQERHBvn37vO1nMsb1MhTEx8eTmpoKQFpaGrGxsSZXVP+cd955fPvttwCkpqaSkJDA+eef\nj8vlorCwkMOHD/PLL79o7E/R3r17GTVqFH/7298YNGgQoDH2hQ8++ICXXnoJgODgYCwWC506ddI4\nV6N///vfvP322yQnJ9OhQwdmzJhB9+7dNcbVaOHChUyfPh2ArKws3G43l112WbWMcb387YOjVx9s\n2rQJwzCYOnUqMTExZpdV5+3atYsHHniA9957j61bt/L4449z5MgR2rZty5QpU7DZbLz33nukpKRg\nGAZjx47l6quvNrvsOmHKlCksXbqUtm3betc9+uijTJkyRWNcjfLy8pgwYQJ79+6luLiY0aNHExMT\no/+WfWTEiBFMmjQJq9WqMa5GRUVFTJgwgczMTCwWCw8++CANGzasljGul6FAREREqq5enj4QERGR\nqlMoEBEREUChQERERMooFIiIiAigUCAiIiJlFApEpNbp2bMnI0aMMLsMEb+jUCAiIiKAQoGIiIiU\nUSgQERERQKFAxO99//333HbbbXTt2pWuXbsyatQofvjhB297z549efTRR1mwYAFXXXUVcXFxDBky\nhG+++ea4fX333Xf86U9/8u5r5MiRrFmz5rjt1q1bx+jRo0lISOCiiy5izJgxZGRkHLfdhx9+yHXX\nXUenTp24+uqreffdd6v3w4tIObrNsYgfW7VqFWPHjqV9+/b069ePoqIi3n//fXbv3s0bb7xBQkIC\nPXv2xDAM9u7dy4gRI4iMjOTdd98lMzOT119/3fsb7p999hn33HMPrVq14qabbgJgwYIFZGZm8sIL\nL3DVVVcBvweHJk2acPPNNxMUFMS8efPIzc1l0aJFtGjRgp49e5KTk0NgYCDDhw+nUaNGzJ8/n02b\nNjF79mx69epl2piJ1GcKBSJ+yuPx0KdPHyIjI3n77bex2WxA6Y8G3XjjjTRo0IAPPviAnj17snv3\n7nJfxjk5OVx99dW0bduWlJQUiouLueqqq7BYLHz00Uc4nU4ADh06RL9+/YDS0BAQEMDgwYP59ddf\nWbx4MQ0bNgRg69at9O3bl9tuu42HHnqInj17kpmZyaJFi+jYsSMAu3fv5qqrruL666/nmWeeqenh\nEvELOn0g4qd++ukndu7cSa9evTh48CA5OTnk5ORQUFDAlVdeyYYNG8jKygKgbdu25f46b9SoETfc\ncAPr1q1j3759/PTTT/z2228MGzbMGwgAwsLCGD58OFlZWaSnp7Nv3z5++OEH+vfv7w0EUPr78IsW\nLWL06NHeda1bt/YGAoDmzZvTqFEj9u7d68thEfFrdrMLEBFz7NixA4BnnnnmpH95Z2ZmAnDOOecc\n1xYdHY1hGOzevZtdu3YBpV/uf3T056AzMzO9RyOio6OP2+68884rt9y4cePjtgkKCuLIkSMn/Uwi\ncmYUCkT8lMfjAeCvf/0rcXFxJ9zm6Bd6QEDAcW0lJSUA2Gw2KjoLebQtICDA+54Wi6XS+qxWHcgU\nqWkKBSJ+qnnz5gA0aNCASy+9tFzbDz/8wMGDBwkKCgJ+P6pwrO3bt2Oz2WjRooX3r/ctW7Yct93W\nrVsBaNasGU2bNj3p/p599lnCw8MZM2bMGXwqETkTiuIifqpTp05ERkaSnJxMbm6ud73b7ea+++5j\nwoQJ3sP969evJy0tzbvN3r17+fDDD7n44osJDw+nY8eO3qsS3G53uX298847REZG0qlTJ5o2bUr7\n9u1ZsmRJue127tzJvHnzNF9AxGQ6UiDipwICAnjssce4//77GThwIIMGDSIwMNB7GeFzzz2H3V76\nT4TD4WD06NHceuutBAUF8c477+DxeHjooYeO29dNN93EoEGDAFi4cCF79uzhhRde8J4OmDBhAn/+\n85+56aabGDx4MFarlbfffpuwsLByEw1FpOYpFIj4sWuuuYbw8HDmzp3LnDlzsFqttGvXjrlz53Ll\nlVd6t4uLi+O6665jzpw5HD58mISEBMaNG0f79u2P29ecOXOYPXs2drudLl268PTTT5OQkODd7uKL\nL+att97ihRdeYPbs2QQGBnLBBRfwt7/9jcjIyBr9/CJSnu5TICIV6tmzJ82bNyc5OdnsUkTExzSn\nQERERACFAhERESmjUCAiIiKA5hSIiIhIGR0pEBEREUChQERERMooFIiIiAigUCAiIiJlFApEREQE\nUCgQERGRMv8PrJcV17eQ2PMAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xef985f8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.tsplot(time=np.arange(len(cost_data)), data = cost_data)\n",
    "plt.xlabel('epoch', fontsize=18)\n",
    "plt.ylabel('cost', fontsize=18)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ -1.20848957e-16,   8.30383883e-01,   8.23982853e-04])"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "final_theta"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 3. learning rate（学习率）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[  1.00000000e-05   3.00000000e-05   2.15443469e-04   6.46330407e-04\n",
      "   4.64158883e-03   1.39247665e-02   1.00000000e-01   3.00000000e-01]\n"
     ]
    }
   ],
   "source": [
    "base = np.logspace(-1, -5, num=4)\n",
    "candidate = np.sort(np.concatenate((base, base*3)))\n",
    "print(candidate)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nYwXYfhhtHH/2OZzXzzIWjnE4Q1vTtgDO+BmNYxv7z7Z+Wt9pY+C0fq79Xkqb82fjjP2nbnsp/Wcb\nd7FjL2Q7ACg4uB97pIXn2f7czvv5/6K+CyX2X9wvxzH86xpa+VUH+4r24ZDyIl4HLwCQ26czkNkn\n1UXU0OyrEgCpfWo5VqsFZgtgsVhgccytMFussJitsFitsFissFhsYZCl2XTqusVihcVq24+52f6s\nVpwypmmfjWOtVjjarc3GmC1WWC2w79dq31ezmq2A1WKF1dp8v7afOxr7LY39jv0612Xb1r6N2QoL\nrE37tNjqcmxvscIK22daLFYYrFbA2jgGjtqtVmvT/pvV1LhPKxqPE2iQJbTo/3Mid8eQhogIth/k\nbVe0KKFV+7T455vMJhjMBhibzY0WIwwmI4wWo3O72QiD2dg0b9ZvtlhgspjskxkmswnGxnWzva15\nv8UEk7mxzQizxQKzxQyz1Wxbtppt6xYzzFaLY9nkGOPcZ7FaYLZa7D942ra3WC228RaD7YdYq+2v\npU3LZvuyFSaLCTgKRx+RaDaKXQCR3TqxC6DLrvFi1FZyN/QxbT6A58Qug8htMKQhInIBMqkMMim/\nJGdmZjpdUu34q561KdSxwur4i+VpbdbGv3ZaHNtZYT1luam/cTvnZTi2ccybLzvmOGM7gNO2cxzL\nKds4jW3e1qzPeb3Zf5fT+s69fsYxTn047/jmbWf6rFPHntp3Yf04o1O3O9O25xp7Ids1OnjwICIi\nIi55+3/7+efb/kKc7zOutMtwCP++BpH/G1wOhYWFCA8PF+3zL8e5SK2fttZT7BKI3Ap/IyAiIpfV\neFuQBHwGDrWcTHkmn79ALuHU4JpIDJmZmWKXQORW+FMvEREREREREZELYEhDREREREREROQCGNIQ\nEREREREREbkAhjRERERERERERC6AIQ0RERERERERkQtgSENERERERERE5AIY0hARERERERERuQCG\nNERERERERERELoAhDRERERERERGRC2BIQ0RERERERETkAhjSEBERERERERG5AIY0REREREREREQu\ngCENEREREREREZELYEhDREREREREROQCGNIQEREREREREbkAhjRERERERERERC6AIQ0RERERERER\nkQtgSENERERERERE5AIY0hARERERERERuQCGNERERERERERELkCwWq1WsYu4kjIzM8UugYiIiIiI\niK6gTp06iV0C0WXR5kMaIiIiIiIiIqLWgLc7EREREREREVLuLYIAAAnXSURBVBG5AIY0RERERERE\nREQugCENEREREREREZELYEhDREREREREROQCGNIQEREREREREbkAmdgFuCuLxYLJkycjPz8fCoUC\nU6ZMQWRkpNhlkRvJzs7Gu+++i+nTp+PgwYN45plnIAgC4uPj8fLLL0MiYYZLV5bRaMRzzz2H4uJi\nGAwGPPDAA4iLi+O5SC3KbDbjhRdeQEFBAQRBwCuvvAKlUsnzkERRVVWFoUOH4rvvvoNMJuN5SKK4\n9dZbodFoAABhYWG4//77eS4StSD+6xLJ8uXLYTAYMHv2bDz++ON46623xC6J3Mg333yDF154AQ0N\nDQCAN998ExMnTsTMmTNhtVqxYsUKkSskd7Bw4UJotVrMnDkT3377LV577TWei9TiVq5cCQCYNWsW\nJk6ciA8++IDnIYnCaDTipZdegkqlAsDvzSSOhoYGWK1WTJ8+HdOnT8ebb77Jc5GohTGkEUlmZiZ6\n9eoFAEhPT8fOnTtFrojcSUREBD755BPHem5uLq666ioAQO/evbF+/XqxSiM3MnDgQDz66KMAAKvV\nCqlUynORWtx1112H1157DQBQUlICb29vnockirfffhsjRoxAUFAQAH5vJnHk5eWhrq4O48aNw+jR\no5GVlcVzkaiFMaQRSXV1teMyQgCQSqUwmUwiVkTu5Prrr4dM1nS3o9VqhSAIAABPT0+cPHlSrNLI\njXh6ekKj0aC6uhqPPPIIJk6cyHORRCGTyfD000/jtddew80338zzkFrcvHnz4Ofn5/gDHsDvzSQO\nlUqFe+65B1OnTsUrr7yCJ554guciUQtjSCMSjUaDmpoax7rFYnH6pZmoJTW/r7impgbe3t4iVkPu\npLS0FKNHj8bgwYNx880381wk0bz99ttYunQpXnzxRcetoADPQ2oZc+fOxfr16zFq1Cjs2rULTz/9\nNI4cOeLo53lILSU6Ohq33HILBEFAdHQ0tFotqqqqHP08F4muPIY0IunYsSNWr14NAMjKykJCQoLI\nFZE7a9++PTZt2gQAWL16NTp37ixyReQOKisrMW7cODz55JMYNmwYAJ6L1PIWLFiAr776CgCgVqsh\nCAJSUlJ4HlKLmjFjBn766SdMnz4dSUlJePvtt9G7d2+eh9Tifv31V8ezMsvLy1FdXY0ePXrwXCRq\n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\nE7bDgwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xeea7358>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "epoch=50\n",
    "\n",
    "fig, ax = plt.subplots(figsize=(16, 9))\n",
    "\n",
    "for alpha in candidate:\n",
    "    _, cost_data = batch_gradient_decent(theta, X, y, epoch, alpha=alpha)\n",
    "    ax.plot(np.arange(epoch+1), cost_data, label=alpha)\n",
    "\n",
    "ax.set_xlabel('epoch', fontsize=18)\n",
    "ax.set_ylabel('cost', fontsize=18)\n",
    "ax.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)\n",
    "ax.set_title('learning rate', fontsize=18)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 4. normal equation（正规方程）\n",
    "正规方程是通过求解下面的方程来找出使得代价函数最小的参数的：$\\frac{\\partial }{\\partial {{\\theta }_{j}}}J\\left( {{\\theta }_{j}} \\right)=0$ 。\n",
    " 假设我们的训练集特征矩阵为 X（包含了${{x}_{0}}=1$）并且我们的训练集结果为向量 y，则利用正规方程解出向量 $\\theta ={{\\left( {{X}^{T}}X \\right)}^{-1}}{{X}^{T}}y$ 。\n",
    "上标T代表矩阵转置，上标-1 代表矩阵的逆。设矩阵$A={{X}^{T}}X$，则：${{\\left( {{X}^{T}}X \\right)}^{-1}}={{A}^{-1}}$\n",
    "\n",
    "梯度下降与正规方程的比较：\n",
    "\n",
    "梯度下降：需要选择学习率α，需要多次迭代，当特征数量n大时也能较好适用，适用于各种类型的模型\t\n",
    "\n",
    "正规方程：不需要选择学习率α，一次计算得出，需要计算${{\\left( {{X}^{T}}X \\right)}^{-1}}$，如果特征数量n较大则运算代价大，因为矩阵逆的计算时间复杂度为O(n3)，通常来说当n小于10000 时还是可以接受的，只适用于线性模型，不适合逻辑回归模型等其他模型\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 正规方程\n",
    "def normalEqn(X, y):\n",
    "    theta = np.linalg.inv(X.T@X)@X.T@y#X.T@X等价于X.T.dot(X)\n",
    "    return theta"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ -1.14491749e-16,   8.84765988e-01,  -5.31788197e-02])"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "final_theta2=normalEqn(X, y)#感觉和批量梯度下降的theta的值有点差距\n",
    "final_theta2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# run the tensorflow graph over several optimizer"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(47, 3) <class 'numpy.ndarray'>\n",
      "(47, 1) <class 'numpy.ndarray'>\n"
     ]
    }
   ],
   "source": [
    "X_data = get_X(data)\n",
    "print(X_data.shape, type(X_data))\n",
    "\n",
    "y_data = get_y(data).reshape(len(X_data), 1)  # special treatment for tensorflow input data\n",
    "print(y_data.shape, type(y_data))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "epoch = 2000\n",
    "alpha = 0.01"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "optimizer_dict={'GD': tf.train.GradientDescentOptimizer,\n",
    "                'Adagrad': tf.train.AdagradOptimizer,\n",
    "                'Adam': tf.train.AdamOptimizer,\n",
    "                'Ftrl': tf.train.FtrlOptimizer,\n",
    "                'RMS': tf.train.RMSPropOptimizer\n",
    "               }\n",
    "results = []\n",
    "for name in optimizer_dict:\n",
    "    res = linear_regression(X_data, y_data, alpha, epoch, optimizer=optimizer_dict[name])\n",
    "    res['name'] = name\n",
    "    results.append(res)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 画图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABDIAAAIxCAYAAAC/7Zi0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl8VPW9//H3zJzZsgFhUSuyBYMVCZsUULkoAqUUFwIY\nFIJWr4J1uS6gotUiKqKIy0WN1muhF3sREVBcQBBR/KFgjcYCFVAEFFQIJiFMttnO748xI2nYAknO\nCXk9H48+Mmf/TL780bz9fL/HYZqmKQAAAAAAgAbAaXUBAAAAAAAAR4sgAwAAAAAANBgEGQAAAAAA\noMEgyAAAAAAAAA0GQQYAAAAAAGgwCDIAAAAAAECDQZABADhhDBgwQNnZ2fHt7OxsDRgwoMo5c+bM\n0XnnnaeMjAw99thjh9xnN4FAQAUFBfX+3GAwqN27d8e3Fy1apE6dOmndunXHfe/avBcAAGg8CDIA\nACesCRMm6O67745vb968WQ8//LBOPfVU3Xvvvfrtb3970H12s2HDBv3ud7/TV199Va/P3bVrly66\n6CKtWbMmvq9Xr1569NFHlZaWdtz3r817AQCAxsOwugAAAOrKueeeW2V7y5YtkqTx48fHOzXeeOON\navvsZsuWLdqzZ0+9P3fnzp3avn17lX2nnXaaTjvttFq5f23eCwAANB50ZAAAGo1QKCRJSkxMPOw+\nAAAA2BdBBgCgQXr77bd1ySWXKCMjQ8OGDdPKlSurnXPgGhnZ2dmaPHmyJGncuHHq1KnTQfdV+vrr\nr3XDDTfo7LPPVteuXTV69Gh9+OGH1e5/zTXX6IknnlD37t3Vt29fbd68ucbXr169WpmZmerSpYv6\n9++vWbNmKRqNSpJmzZpVpcYjdY3s2rVLkyZNUp8+fdSlSxddfPHFeuWVV6qcc9ddd2nQoEH6/PPP\nlZmZqYyMDA0ZMkTz5s2Ln7No0SKNGzdOkjR58uT47+bf17Wo3N60aZNuvvlmde/eXX369NEjjzyi\nSCSixYsX67e//a26deum0aNHa9OmTVWeceC9srOz1alTp4P+78DvXVFRoSeeeEIDBgzQWWedpQsv\nvFBPPfWUgsFgtXu/8847GjBggLp27apZs2Yd9ncHAAAaBqaWAAAanEWLFmny5Mnq3r27Jk2apB07\nduiWW26Rw+HQqaeeetBrJkyYoPbt22v+/PmaMGGCOnTooBYtWlTbJ8XW0rjiiivUokULjR8/Xm63\nW2+++aauu+46zZw5U0OHDo3f97PPPtN3332nSZMmaefOnerYsWONrt+yZYtuueUWZWVlKSsrS2++\n+aaefvpppaamasyYMRo0aJDy8/PjNXbp0uWQv5fvvvtOl112mSoqKjR27Fi1bNlSy5cv17333qvt\n27frjjvuiJ9bVFSk//zP/1T//v2VmZmp5cuXa8qUKSouLtb48ePVq1cvTZgwQc8995yysrLUs2fP\nw47Jddddp549e+quu+7S8uXL9de//lVbtmzR5s2bdeWVV8o0TeXk5Ojmm2/W22+/LcOo/n9BJkyY\noJEjR1bZ9/HHH2vx4sW64IILJEmRSETjx4/XZ599pssuu0xpaWnasGGDnnvuOX355ZfKycmRw+GI\nX3/PPfdo7NixSkpKUrdu3Q77HQAAQANhAgDQgITDYbNv377miBEjzGAwGN+/cOFCMz093Rw7dmx8\n39ixY80LLrig2jlr16497L6xY8eaAwcONEtKSuL7QqGQecUVV5jnnHOOWVFRET8vPT3dzMvLq1Jj\nTa9fuXJl/Lzy8nKzV69eZlZW1mFrPJhbbrnFPOOMM8wNGzbE90UiEXP8+PFmp06dzC1btpimaZp3\n3nmnmZ6ebj744INVfq9jxowxMzIyzKKiItM0TXPt2rVmenq6uXDhwkPWUrl90003xc8pLi42O3fu\nbJ5xxhnxZ5qmaT7++ONmenq6uW3btqP6Xtu2bTPPPvtsMysrKz7WldesXr26yrkvv/yymZ6ebq5Y\nsaLKeffdd99hf2cAAKDhYWoJAKBB2bhxo3766SdlZmbK7XbH919yySVq0qTJcd+/sLBQn3zyifr3\n76/y8nIVFBSooKBAxcXFGjRokPbu3av169fHz/f5fFW6JGp6vd/v1/nnnx/f9nq9at++vfbu3Vuj\nuiORiN5//32dd9556ty5c3y/0+nUhAkTZJqm3nvvvSrXjB8/Pv7Z5XJp3LhxKi8v10cffVSjZ0vS\nwIED45+Tk5OVmpqqdu3a6fTTT4/vb926tSQpPz//iPcLBAL64x//KI/Ho6eeeio+1suXL1dqaqo6\nd+4c/90WFBSof//+crlcev/996vcp1evXjX+LgAAwN6YWgIAaFB27dolSWrTpk2V/S6XS23btj3u\n+3/33XeSpLlz52ru3LkHPeeHH36If27atKmczl/+u8DxXi9JHo8nvkbG0SosLFRpaanat29f7Vjl\n600rf3eVz23RokWV8yp/fweed7T+/V6GYah58+ZV9rlcLkk64nczTVMTJ07Ujh07NGfOHJ100knx\nY99++60KCgrUt2/fg1574O9WUrUaAABAw0eQAQBoUCrXPygvL692rKZ//B9MJBKRJI0ZM6ZKl8GB\nOnbsGP9c+cf5sV7/7yHGsTJN85DHKn8vHo8nvu/AbpZ/P+/fv9PRONg1B65VURNPPvmkVq1apcmT\nJ1frqIhEImrXrp3+/Oc/H/TalJSUKtu19fsFAAD2QZABAGhQTjvtNEnSjh07quw3TVO7du2qMpXh\nWFQuFupyuXTOOedUOfb1119r586d8vv9dXb9sUpNTVVCQoK++eabase2bdsmSTr55JPj+/bu3auS\nkpIqr53dvn27JNVKZ8uxWrZsmZ577jkNHTpUV111VbXjrVu31oYNG9SnT58qIUUoFNKKFSuqfEcA\nAHBi4j9TAAAalDPPPFOnnnqq5s2bp7Kysvj+t956S4WFhcd9/1atWumss87S4sWLtXv37vj+UCik\nu+++WzfffLPC4XCdXX8wlX+wH67jxOVyqV+/flqzZo02btwY32+apl544QU5HI4qa3GYpqm///3v\n8e1wOKy//e1vSk5Ojk/bONqpILVl06ZNmjx5stLT0/XQQw8d9JwBAwaoqKioyqtiJenll1/Wrbfe\nqo8//rg+SgUAABaiIwMA0KA4HA7de++9uuGGG5SVlaURI0Zo9+7d+vvf/66mTZvWyjP+9Kc/6cor\nr9SIESN0+eWXq2nTpnrrrbf0xRdf6Pbbb1ezZs3q9Pp/l5qaKkmaN2+e9u7dq4suuuig502cOFHr\n1q1Tdna2srOz1bJlS61YsUJr167VH/7whypTWiTp2WefjXexLF26VJ9//rkeeuiheMdIZZ1LliyR\naZoaPnx4jequidLSUt1www2qqKjQZZddplWrVlULfAYNGqRRo0Zp8eLFeuCBB7Rx40ZlZGRoy5Yt\nmj9/vjp37qzMzMw6qxEAANgDQQYAoMG54IIL9Pzzz2vWrFl6/PHHddJJJ+mhhx6q0mFwPLp37655\n8+Zp1qxZmj17tsLhsNq3b6/p06cf1R/zx3v9v+vbt69+97vfadWqVVq7dq0GDx4sr9db7bw2bdro\nlVde0ZNPPqmXX35Z5eXlSktL00MPPaSRI0dWO//FF1/UlClTtHjxYnXs2FFPP/20Bg0aFD+elpam\n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\nOTyejkCXJCIiIiIiIiFAQUaQ65yRgXd/kNENZmR0uu+9X9GUW0vUqiT++ONnA12OiIiIiIiIhAAF\nGUGuc0aGz20CwN3ecGDXklAPMsLCbPx+3uW0xjXifdXOsw++FeiSREREREREJMgpyAhythj/jAyv\nywCAu30fVquZpISIkA8yADIye3Hpv8fjsjop+79GPvngi0CXJCIiIiIiIkFMQUaQs8X4Z2R0OHwA\neNr3AZCWYu8WQQbAuInDGf63Xpg9Zv5zaTEla7cEuiQREREREREJUgoyglzn0hJPmxfwz8gAf5DR\n0uqiucUZsNqOp6uuOx/7DR4imqN4avIH7NpZG+iSREREREREJAgpyAhync0+3S0u/6/t/q1KOxt+\n7qrpHrMyAP7w+E/wTG3AXhPHXZNm0dLSGuiSREREREREJMgoyAhynTMyXI3+IMPT3gBAanL32Lnk\nvxkMBu7/1/W0jqolenMid5zxrLZlFRERERERkYMoyAhync0+XY0O4OClJQA7d3efIAPAYjZz36e/\npCl7L5ErkrjjR08FuiQREREREREJIgoyglxns0/nviZMlshDg4xuNCOjk90eyR8+u5zm5AZM/47l\nL7/4R6BLEhERERERkSChICPIWaKiMBiNOJsasYTFHrRrCXTPIAMgvXcK130yhdaYJtr+n42Hbn85\n0CWJiIiIiIhIEFCQEeQMBgO2mBicjfswh8X2iBkZnQYNyeHKD0/BEdFK7UNenrjnjUCXJCIiIiIi\nIgGmICME2GJicTbun5HhbMLn85KSFInB0L2DDIAxJw/hgncLcYU52THDwQuPvxvokkRERERERCSA\nFGSEAGt0DK6mRixhcYAPT3sjZrOJlKSobh9kAJw6eTSTXx1Ah7mDklvqeeOfcwNdkoiIiIiIiASI\ngowQEBYbi6u5GZPVv5ykc3lJanIUu2pa8Pl8gSyvS5x74QROei4T8PHlz6t588V5gS5JRERERERE\nAkBBRgiwxcYBYDREAAdvwdrmcNPU7AxYbV3pkqsmM/yZXuCDFT+t5PXnPwp0SSIiIiIiItLFFGSE\ngLC4eP8XPgvAgZ1L0ntFA1C5szEgdQXCFT87l8JnUwFY9YudvPrchwGuSERERERERLqSgowQEBbv\nDzJ8bjMA7vYGAPqkxQBQuaspMIUFyGU/ncLof/QGA3z1y93MenZOoEsSERERERGRLqIgIwR0zsjw\n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\niIhIu6EgQ0RERERERETaDQUZIiIiIiIiItJuKMgQERERERERkXZDQYaIiIiIiIiItBsKMkRERERE\nRESk3VCQISIiIiIiIiLthoIMEREREREREWk3FGSIiIiIiIiISLuhIENERERERERE2g0FGSIiIiIi\nIiLSbhimaZq+rkRrSk9P93UVREREREREpBWlpaX5ugrShk75IENERERERERETh26tERERERERERE\n2g0FGSIiIiIiIiLSbijIEBEREREREZF2Q0GGiIiIiIiIiLQbCjJEREREREREpN2w+boCHZXX6+W+\n++5j69atOBwO5s+fT3Jysq+r1WHU1dXxhz/8gczMTGpra7nxxhuJi4vj+uuvp3PnzgBMmTKFiy++\nmGXLlvHaa69hs9m48cYbOf/8831b+VPY+PHjcTqdACQmJnLDDTdwxx13YBgG3bt3595778VisahN\n2tCbb77JihUrAHC73fzwww8sXbpU54qPrF+/nieeeILFixezZ8+e4z4/ampqmDt3LoWFhQQFBfHo\no48SHh7u64dzyji0XX744QceeOABrFYrDoeDRx99lMjISObPn8+aNWsICgoCYOHChdjtdrVLKzm0\nTTZv3nzcr1k6V1rXoe1y6623UlBQAEBmZib9+/fn6aef1rnSRo70Wbhbt256X5H2wxSf+PDDD815\n8+aZpmmaa9euNW+44QYf16hjWb58uTl//nzTNE2zuLjYPPfcc81ly5aZf/vb35qUy8vLM8eOHWu6\n3W6zrKyscVpaXk1NjTlu3Lgmy66//nrzq6++Mk3TNO+55x7zo48+Upv40H333We+9tprOld85Pnn\nnzfHjh1rTpo0yTTNEzs/XnjhBfOZZ54xTdM033vvPfOBBx7w2eM41RzeLlOnTjU3b95smqZpvvrq\nq+ZDDz1kmqZpTp482SwsLGyyrdqldRzeJifymqU2aT2Ht8sBJSUl5mWXXWbm5uaapqlzpa0c6bOw\n3lekPdGlJT6Snp7OOeecA8CAAQP4/vvvfVyjjmXMmDHcfPPNAJimidVq5fvvv+fzzz9n6tSp/OEP\nf6CiooINGzYwcOBAHA4HwcHBJCUlsWXLFh/X/tS0ZcsWqqurmTVrFjNmzGDdunVs2rSJ008/HYDh\nw4fz5Zdfqk18ZOPGjWzfvp2rrrpK54qPJCUl8eyzzzbOn8j5ceh7zvDhw1m9erVPHsOp6PB2eeqp\np+jduzcAHo8HPz8/vF4ve/bs4Y9//COTJ09m+fLlAGqXVnJ4m5zIa5bapPUc3i4HPPvss0ybNo3o\n6GidK23oSJ+F9b4i7YkuLfGRioqKxi70AFarlfr6emw2NUlbONBdsaKigptuuolbbrmF2tpaJk2a\nRGpqKosWLWLBggX06tWL4ODgJttVVFT4qtqnNH9/f2bPns2kSZPYvXs3c+bMwTRNDMMAGp778vJy\nKioq1CY+8Nxzz/HrX/8agH79+ulc8YHRo0eTkZHROH8i58ehyw+UlZZxeLtER0cDsGbNGpYsWcIr\nr7xCVVUV06ZNY+bMmXg8HmbMmEFqaqrapZUc3iYn8pqlNmk9h7cLQGFhIatXr+bOO+8E0LnSho70\nWfjRRx/V+4q0G+qR4SNOp5PKysrGea/XqxCjjWVnZzNjxgzGjRvHpZdeyqhRo0hNTQVg1KhRbN68\nuVk7VVZWNnkxl5aTkpLCZZddhmEYpKSkEBoaSmFhYeP6yspKQkJC1CY+UFZWxq5duxg2bBiAzpWT\nhMVy8C38WOfHocsPlJXW889//pN7772X559/nvDwcAICApgxYwYBAQE4nU6GDRvGli1b1C5t5ERe\ns9QmbeuDDz5g7NixWK1WAJ0rbezwz8J6X5H2REGGjwwaNIiVK1cCsG7dOnr06OHjGnUsBQUFzJo1\ni7lz5zJx4kQAZs+ezYYNGwBYvXo1ffv2pV+/fqSnp+N2uykvL2fHjh1qq1ayfPlyHnnkEQByc3Op\nqKjgrLPO4uuvvwZg5cqVDB48WG3iA99++y1nnHFG47zOlZNDnz59jvv8GDRoEP/5z38ay6alpfmy\n6qe0t99+myVLlrB48WI6deoEwO7du5kyZQoej4e6ujrWrFlD37591S5t5ERes9QmbWv16tUMHz68\ncV7nSts50mdhva9Ie6IuAD4yatQoVq1axeTJkzFNk4ceesjXVepQ/vznP1NWVsbChQtZuHAhAHfc\ncQcPPfQQdrudyMhIHnjgAZxOJ9OnT+fqq6/GNE1uvfVW/Pz8fFz7U9PEiRO58847mTJlCoZh8NBD\nDxEWFsY999zDU089RZcuXRg9ejRWq1Vt0sZ27dpFYmJi4/x9993HAw88oHPFx+bNm3fc58eUKVOY\nN28eU6ZMwW638+STT/q6+qckj8fDgw8+SFxcHL/97W8BGDJkCDfddBPjxo3jyiuvxG63M27cOLp3\n705iYqLapQ2cyGuWzpW2tWvXrsbAD6Br1646V9rIkT4L33XXXcyfP1/vK9IuGC3tAg4AAAXRSURB\nVKZpmr6uhIiIiIiIiIjI8dClJSIiIiIiIiLSbijIEBEREREREZF2Q0GGiIiIiIiIiLQbCjJERERE\nREREpN1QkCEiIiIiIiIi7YaCDBEREQFgxIgRTJ8+3dfVEBERETkqBRkiIiIiIiIi0m4oyBARERER\nERGRdkNBhoiIiIiIiIi0GwoyREREfGDt2rXMnDmTgQMHMnDgQGbNmsWGDRsa148YMYK77rqL119/\nnZEjRzJgwAAmT57MV1991Wxf3333Hddee23jvmbMmMG3337brNz69euZM2cOgwcPZujQoVx33XVs\n3bq1Wbl33nmHSy65hNTUVEaPHs2rr77asg9eRERE5BcwTNM0fV0JERGRjmTVqlVcf/319OrVi7Fj\nx1JbW8ubb75JZmYmL774IoMHD2bEiBGYpklBQQHTp08nKiqKV199laysLF544QVOP/10AD755BN+\n85vfkJSUxIQJEwB4/fXXycrK4plnnmHkyJHAwbAjOjqaK6+8En9/f15++WUqKyt54403SExMZMSI\nERQVFeHn58e0adMIDw/ntddeY9u2bSxYsIALLrjAZ8+ZiIiIyAEKMkRERNqQ1+vlwgsvJCoqiiVL\nlmC1WgGoqqri8ssvJzAwkLfeeosRI0aQmZnZJEAoKipi9OjRdOnShaVLl1JfX8/IkSMxDIP33nsP\np9MJQFlZGWPHjgUagg673c6kSZPIzs7m3XffJSwsDIBdu3Zx8cUXM3PmTG6//XZGjBhBVlYWb7zx\nBn379gUgMzOTkSNHctlll/HYY4+19dMlIiIi0owuLREREWlDmzdvZt++fVxwwQWUlpZSVFREUVER\nNTU1nH/++fzwww/k5uYC0KVLlya9IMLDwxk3bhzr16+nsLCQzZs3k5OTw9SpUxtDDICQkBCmTZtG\nbm4u33//PYWFhWzYsIFLL720McQASElJ4Y033mDOnDmNyzp37twYYgAkJCQQHh5OQUFBaz4tIiIi\nIsfN5usKiIiIdCR79+4F4LHHHvvJHg5ZWVkAdOvWrdm65ORkTNMkMzOTjIwMoCGQOFyXLl0a93Wg\n10dycnKzcn369GkyHxER0ayMv78/dXV1P/mYRERERNqSggwREZE25PV6Abj55psZMGDAEcscCCHs\ndnuzdR6PBwCr1crRrg49sM5utzce0zCMY9bPYlFnTRERETm5KcgQERFpQwkJCQAEBgZy5plnNlm3\nYcMGSktL8ff3Bw723jjUnj17sFqtJCYmNvaS2LlzZ7Nyu3btAiA2NpaYmJif3N/jjz+Oy+Xiuuuu\n+wWPSkRERKTt6N8uIiIibSg1NZWoqCgWL15MZWVl4/KKigpuueUW7rzzzsZLQTZu3Mi6desayxQU\nFPDOO+8wbNgwXC4Xffv2bfw1k4qKiib7+sc//kFUVBSpqanExMTQq1cv3n///Sbl9u3bx8svv6zx\nL0RERKRdUY8MERGRNmS327n77ru59dZbueKKK5g4cSJ+fn6NP5n6xBNPYLM1vD07HA7mzJnDNddc\ng7+/P//4xz/wer3cfvvtzfY1YcIEJk6cCMDy5cvJy8vjmWeeabxU5M477+RXv/oVEyZMYNKkSVgs\nFpYsWUJISEiTwT5FRERETnYKMkRERNrYmDFjcLlcLFq0iIULF2KxWOjevTuLFi3i/PPPbyw3YMAA\nLrnkEhYuXEh5eTmDBw/mtttuo1evXs32tXDhQhYsWIDNZqN///48+OCDDB48uLHcsGHDeOmll3jm\nmWdYsGABfn5+DBkyhLlz5xIVFdWmj19ERETklzDMo40UJiIiIj4xYsQIEhISWLx4sa+rIiIiInJS\n0RgZIiIiIiIiItJuKMgQERERERERkXZDQYaIiIiIiIiItBsaI0NERERERERE2g31yBARERERERGR\ndkNBhoiIiIiIiIi0GwoyRERERERERKTdUJAhIiIiIiIiIu2GggwRERERERERaTcUZIiIiIiIiIhI\nu/H/ARJpLmwFFE2UAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xfab7f60>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize=(16, 9))\n",
    "\n",
    "for res in results: \n",
    "    loss_data = res['loss']\n",
    "    \n",
    "#     print('for optimizer {}'.format(res['name']))\n",
    "#     print('final parameters\\n', res['parameters'])\n",
    "#     print('final loss={}\\n'.format(loss_data[-1]))\n",
    "    ax.plot(np.arange(len(loss_data)), loss_data, label=res['name'])\n",
    "\n",
    "ax.set_xlabel('epoch', fontsize=18)\n",
    "ax.set_ylabel('cost', fontsize=18)\n",
    "ax.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)\n",
    "ax.set_title('different optimizer', fontsize=18)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python [default]",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
